/**
 * 
 */
package com.wolfpire.workflow.dao;

import java.util.List;

import com.wolfpire.system.common.EasyuiPage;
import com.wolfpire.system.common.Page;
import com.wolfpire.system.common.base.dao.IBaseHibernateDao;
import com.wolfpire.workflow.om.Workflow;

/**
 * @author lihd
 *
 */
public interface WorkflowDao extends IBaseHibernateDao<Workflow, Long> {
	
	public List<Workflow> queryAppList();
	
	/**
	 * 根据流程定义ID获取工作流
	 * @param dbId
	 * @return
	 */
	public Workflow getWorkflowByDeploymentId(Long deploymentId);
	
	/**
	 * 根据表单类型ID获取工作流
	 * @param formTypeId
	 * @return
	 */
	public Workflow getWorkflowByFormTypeId(String formTypeId);
	
	/**
	 * 根据表单类型ID和组织ID串查询该组织是否以有一条同一表单类型的流程定义
	 * @param formTypeId
	 * @param respectOrgsId
	 * @return
	 */
	public List<Workflow> getWorkflowByFormTypeIdAndOrgId(String formTypeId,String orgId);
	
	/**
	 * 根据流程名称、流程类型Id和组织Id串查询流程定义
	 * @param flowName 流程定义名称
	 * @param wftypeId
	 * @param orgId
	 * @return
	 */
	public Workflow getWorkflowByWfTypeIdAndOrgId(String flowName, String wftypeId, String orgId);

	public Page<Workflow> findWorkflows(EasyuiPage<Workflow> page, Workflow filterWorkflow);
	
	/**
	 * 根据查询条件获取流程列表
	 * @param workflow
	 * @return
	 */
	public List<Workflow> list(Workflow workflow);

}
